package io.renren.modules.carinfo.dto;

import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 车辆信息DTO类
 */
@Data
public class CarInfoDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @NotNull(message="id不能为空", groups = {UpdateGroup.class})
    private Long id;

    @ApiModelProperty(value = "车型")
    @NotBlank(message="车型不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String carModel;

    @ApiModelProperty(value = "厂商指导价")
    @NotBlank(message="厂商指导价不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String guidePrice;

    @ApiModelProperty(value = "厂商名称")
    @NotBlank(message="厂商名称不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String manufacturer;

    @ApiModelProperty(value = "级别")
    @NotBlank(message="级别不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String level;

    @ApiModelProperty(value = "能源类型")
    private String energyType;

    @ApiModelProperty(value = "上市时间")
    @NotBlank(message="上市时间不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String timeMarket;

    @ApiModelProperty(value = "发动机")
    private String engine;

    @ApiModelProperty(value = "最大功率")
    private Integer maxPower;

    @ApiModelProperty(value = "最大扭矩")
    private Integer maxTorque;

    @ApiModelProperty(value = "变速箱")
    private String transmissionCase;

    @ApiModelProperty(value = "长度")
    @NotNull(message="长度不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private Integer length;

    @ApiModelProperty(value = "宽度")
    @NotNull(message="宽度不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private Integer wide;

    @ApiModelProperty(value = "高度")
    @NotNull(message="高度不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private Integer height;

    @ApiModelProperty(value = "车身结构")
    @NotBlank(message="车身结构不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String carStructure;

    @ApiModelProperty(value = "最高车速")
    private Integer maxSpeed;

    @ApiModelProperty(value = "官方百公里加速时间(s)")
    private BigDecimal accelerationTime;

    @ApiModelProperty(value = "车辆库存")
    private Integer stock;

    @ApiModelProperty(value = "车辆图片(主图)")
    private List<String> picture;

}
